import random
import datetime

money = 2000
initial_money = money

# 购物车
gouwuche = []

# 商品列表
shangpin = {'苹果': 500, '香蕉': 600, '菠萝': 400, '葡萄': 2000, '空调': 1800}

simple_coupons = [
    {'name': '空调8折券', 'item': '空调', 'discount': 0.8},
    {'name': '苹果9折券', 'item': '苹果', 'discount': 0.9},
    {'name': '香蕉9.5折券', 'item': '香蕉', 'discount': 0.95},
    {'name': '菠萝8.5折券', 'item': '菠萝', 'discount': 0.85},
]

# 记录购物开始时间
start_time = datetime.datetime.now()

# 随机抽取一张优惠券
my_coupon = random.choice(simple_coupons)
print("=" * 30)
print("欢迎进入超市！")
print(f"恭喜您，进场时抽中了一张【{my_coupon['name']}】!")
if my_coupon['item']:
    print(f"购买【{my_coupon['item']}】时可享受优惠。")
print("=" * 30)



while True:
    print("\n--- 商品列表 ---")
    for item, price in shangpin.items():
        print(f"{item}: {price}元")
    print("--------------------")

    # 提示用户操作
    prompt = (
        f"您当前余额: {money:.2f}元\n"
        "请输入想购买的商品名称\n"
        "输入 '退货' 来退掉购物车中的商品\n"
        "输入 'q' 或 'Q' 结账退出\n"
        "您的选择是: "
    )
    name = input(prompt)


    if name.lower() == 'q':
        print("感谢您的光临，正在为您结算...")
        break

    elif name == '退货':
        if not gouwuche:
            print("您的购物车是空的，无法退货！")
            continue

        print(f"您当前的购物车中有: {', '.join(gouwuche)}")
        tuihuo = input("请输入您想退货的商品名称: ")

        if tuihuo in gouwuche:

            tuikuan = shangpin[tuihuo]
            if my_coupon['item'] == tuihuo:
                tuikuan *= my_coupon['discount']
                print(f"（此商品享受了【{my_coupon['name']}】，按折扣价退款）")


            money += tuikuan
            gouwuche.remove(tuihuo)
            print(f"商品 '{tuihuo}' 退货成功! 退款{tuikuan:.2f}元, 您的余额: {money:.2f}元")
            print(f"当前购物车: {gouwuche}")
        else:
            print(f"您的购物车中没有 '{tuihuo}' 这件商品！")
        continue


    elif name in shangpin:
        price = shangpin[name]


        if my_coupon['item'] == name:
            price *= my_coupon['discount']
            print(f"已为您使用【{my_coupon['name']}】，商品 '{name}' 折后价为: {price:.2f}元")


        if money >= price:
            money -= price
            gouwuche.append(name)
            print(f"恭喜您，'{name}' 购买成功! 卡里余额: {money:.2f}元")
            print(f"当前购物车: {gouwuche}")
        else:
            print(f"穷鬼，钱不够！您的余额{money:.2f}元，无法购买{price:.2f}元的'{name}'。")
            print("请到其他超市购买，或选择退货/退出。")


    else:
        print("没有这个商品，别瞎弄！请重新输入。")


print("\n" + "=" * 15 + " 购物小票 " + "=" * 15)
print(f"购物时间: {start_time.strftime('%Y-%m-%d %H:%M:%S')}")
print("-" * 42)

if not gouwuche:
    print("您本次没有购买任何商品。")
else:
    print("您购买的商品如下:")
    item_counts = {}
    for item in gouwuche:
        item_counts[item] = item_counts.get(item, 0) + 1


    for item, count in item_counts.items():
        print(f"- {item}  x{count}")

print("-" * 42)
total_items = len(gouwuche)
total_spent = initial_money - money

print(f"购买商品总数: {total_items} 件")
print(f"商品总消费: {total_spent:.2f} 元")
print(f"卡上余额: {money:.2f} 元")

print("=" * 42)
print("谢谢惠顾，欢迎下次光临！")
